A portion of this patent document contains material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights whatsoever. The following notice applies to this document: Copyright (copyright) 1999, ObjectFX, Inc.
The present invention concerns servers and related methods for handling map or spatial data.
The use of digital map or spatial data is vital to the success of companies in many industries. For example, telecommunications companies use spatial data to locate bottlenecks and breakdowns in telephone networks; trucking companies use it to determine optimal routing of their tractor-trailer trucks; and even the United States Army uses it to manage troop deployments and supply operations for national defense.
As recently as ten years ago, most of the computer products that made it possible to use map data were specialized, stand-alone computer systems with specialized mapping (map-data-handling) software running on the same computers that store the map data. The mapping software generally allowed users to interact with displayed maps by, for example, zooming on specific map regions. Though useful, these computer systems, known as single-tier systems, were both expensive to purchase and expensive to operate. Indeed, their expense put them beyond the reach of many businesses.
More recent years witnessed the emergence of two-tier mapping systems using new component-based mapping software and computer networks. Two-tier mapping systems comprise at least two computer systems: The first one, known as a server, stores and manages the map data, and the second one, known as a client, communicates with the server through a computer network, allowing the client to electronically request and receive map data from the server. The computer network generally takes the form of a local-area network, such as corporate intranet, or a wide-area network, such as the Internet. The World Wide Web portion of the Internet, in particular, has allowed any browser-equipped computer to act as a client to any Internet-connected map server. Indeed, today there are many map servers that the public can access. Examples include www.mapquest.com, www.mapblaster.com, and www.mapinfo.com.
One problem with servers in two-tier map systems is the length of time they force clients, and more importantly, users of clients, to wait for map data. Conventionally, this wait arises in two ways, depending on whether a client is a xe2x80x9cthickxe2x80x9d client or a xe2x80x9cthinxe2x80x9d client. For thick clientsxe2x80x94that is, clients that desire mapping software for handling map dataxe2x80x94servers download (or copy) the mapping software to the clients before they send any map data. However, downloading this software to clients can sometimes take several minutes.
For thin clientsxe2x80x94clients that lack the mapping softwarexe2x80x94servers skip the step of downloading the mapping software to speed delivery of requested map data. However, without the mapping software, these thin clients can generally only display static versions of the map. This means, for example, that to zoom in or out on a current display of a map, the client must request further map data from the map server and wait for the map server, potentially located anywhere in the world, to receive the zoom request, perform the necessary calculations, and then finally send an updated map image reflecting the desired zooming. Thus, thick clients force users to wait for the downloading of mapping software, and thin clients force users to wait for the server to handle requested functions, such as zooming.
In addition to this waiting problem, conventional servers in two-tier map systems also suffer from design inflexibilities. For instance, these servers are programmed to either treat all clients as thin clients by not allowing them to host the mapping software or all clients as thick clients by forcing them to host the mapping software. This means, for example, that servers geared for thick clients are unable to service thin clients, such as mobile telephones or personal-digital assistants, which have little memory capacity or little tolerance for significant waits.
Accordingly, there is a need for better servers and better ways of handling the communication and manipulation of map data over computer networks.
To address these and other related needs, the present inventors devised unique map servers, map systems, and related methods for communicating and handling map data to a variety of client types, ranging from mobile telephones and personal-digital assistants to workstations, with reduced wait times for users. An exemplary system includes a map database, a map server, and at least two clients, a thin one and a thick one. The map server includes at least two programs or software modules: a first one for transferring mapping software in the form of mapping objects, and a second one for transferring proxy mapping objects representing the mapping objects. The first client, using an appropriate network address, links to the first program and receives a copy of the mapping objects, enabling the first client to execute certain map functions, for example, zooming, without the server. The second client links to the second program using a different network address and receives the proxy mapping objects, instead of the actual mapping objects, enabling the second client to work with the server to execute certain map functions. Thus, the exemplary system supports both thin and thick clients, and indeed a range of client thickness through provision of additional network-addressable software modules.
Additionally, the exemplary system implements client-side and server-side caching to accelerate response to client requests. An exemplary client-caching scheme entails having the map server answer map requests with not only the requested map, but also with additional related maps and storing the additional related maps in the client cache, in effect anticipating further map requests. Thus, in response to some user requests for further map data, for example, in response to a zoom command, the client computer retrieves the data from the client cache rather than requesting the data from the map server. An exemplary server-caching scheme caches the map data requested by two or more clients, reducing the time necessary to serve the cached map data to subsequent clients.
Other notable features of the exemplary system include a web server between the clients and the map server. The exemplary web server provides a pool of persistent network connections to the map server to reduce time for initiating connections and thus to promote rapid response to map requests. Additionally, the map server includes a service dispatcher for appropriately distributing client requests across expandable sets of service pools, with each service pool including two or more functionally identical service objects for executing a particular map service. Exemplary services include map-data-access services, geocoding services, street-routing services, map-image-display services, and even custom user-defined services. The service pools are configurable to expand in response to demand criteria and thus to dynamically scale the map server to meet changing demands for map data and services.